package com.xx.happychatboot.base.handler;

import lombok.extern.slf4j.Slf4j;

/**
 * 全局未捕获异常处理器
 */
@Slf4j
public class GlobalUncaughtExceptionHandler implements Thread.UncaughtExceptionHandler {

    // 单例实例
    private static final GlobalUncaughtExceptionHandler instance = new GlobalUncaughtExceptionHandler();

    // 私有构造函数，防止外部实例化
    private GlobalUncaughtExceptionHandler() {
    }

    /**
     * 处理未捕获的异常
     * @param t 发生异常的线程
     * @param e 异常信息
     */
    @Override
    public void uncaughtException(Thread t, Throwable e) {
        log.error("Exception in thread {} ", t.getName(), e);
    }

    /**
     * 获取单例实例
     * @return 全局未捕获异常处理器实例
     */
    public static GlobalUncaughtExceptionHandler getInstance() {
        return instance;
    }

}